home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / meltdown.lha / BOB-SOURCE / VBob.bak < prev    next >
Encoding:
Text File  |  1988-07-19  |  9.2 KB  |  343 lines

  1. *****************************************************************************
  2. *                                                                           *
  3. *                    Very Fast Bob Routine                *
  4. *                                                                           *
  5. *  Start Date : 26/2/91                                                     *
  6. * Last Update : 26/2/91                                                     *
  7. *                                  Code : Melt Down / Arena *
  8. *                                                                           *
  9. *****************************************************************************
  10.  
  11. ; Include the macros
  12.  
  13.     Incdir    Df1:
  14.     Include    Source/Macro
  15.  
  16. *****************************************************************************
  17.  
  18. ; Dont forget to use chip ram
  19.  
  20.     Chip
  21.     
  22. *****************************************************************************
  23.  
  24. ; Kill the operating system for good mesure
  25.  
  26.     Kill        
  27.     
  28. *****************************************************************************
  29.  
  30. ; Load custom and set up copper list
  31.  
  32.     Lea    Custom,A5
  33.     Move.l    #Copper,Cop1lch(a5)
  34.     
  35. *****************************************************************************
  36.  
  37. ; Clear Some Mem
  38.  
  39.     Blitwait
  40.     Move.l    #$70000,Bltdpth(a5)
  41.     Move.l    #-1,Bltafwm(a5)
  42.     Move.w    #0,Bltdmod(a5)
  43.     Move.l    #$01000000,Bltcon0(a5)
  44.     Move.w    #256*64+60,Bltsize(a5)
  45.  
  46.     Blitwait
  47.     Move.l    #$77a00,Bltdpth(a5)
  48.     Move.l    #-1,Bltafwm(a5)
  49.     Move.w    #0,Bltdmod(a5)
  50.     Move.l    #$01000000,Bltcon0(a5)
  51.     Move.w    #256*64+60,Bltsize(a5)
  52.     
  53. *****************************************************************************
  54.  
  55. ; Just Wait For The Main Man
  56.  
  57.     Blitwait
  58.  
  59. *****************************************************************************
  60.  
  61. ; Main routine here
  62.  
  63. Mouse
  64.     Move.l    $dff004,d2
  65.     And.l    #$1ff00,d2    
  66.     Cmp.l    #$100,d2
  67.     Bne.s    Mouse
  68.     Bsr    DBuf
  69.     Bsr    ClearAll
  70.     Bsr    BlitAll
  71.     Tstmice    Mouse                ; Pressed the mouse
  72.     
  73. *****************************************************************************
  74.  
  75. ; Return operating system and go back to user
  76.  
  77.     Heal
  78.     Clr.l    D0                ; No error
  79.     Rts
  80.     
  81. *****************************************************************************
  82.  
  83. DBuf
  84.     Eor.w    #$7a00,ScreenPtr+2
  85.     Eor.w    #$7a00,b1l+2
  86.     Eor.w    #$7a00,b2l+2
  87.     Eor.w    #$7a00,b3l+2
  88.     Rts
  89.     
  90. *****************************************************************************
  91.  
  92. ClearAll
  93. Clear
  94.     Blitwait                ; Blitter Nasty But Why Do
  95.     Move.l    #$01000000,Bltcon0(a5)        ; Clear
  96.     Move.w    #$0000,Bltdmod(a5)        ; Skip No Bytes
  97.     Move.l    ScreenPtr,A1
  98.     Move.l    a1,Bltdpth(A5)            ; Set Dest
  99.     Move.l    #-1,Bltafwm(a5)            ; Use All Bits
  100.     Move.w    #108*64+60,Bltsize(a5)        ; Fill Half Screen
  101.     Movem.l    a0-a6/d0-d7,-(a7)        ; Save The Regs
  102.     Movem.l    RegFiller(pc),a1-a6/d0-d7    ; Clear The Regs
  103.     Move.l    ScreenPtr,A0
  104.     Add.l    #25920,A0
  105.  
  106.     Rept    232
  107.     Movem.l    a1-a6/d0-d7,-(a0)        ; Clear 56 Butes
  108.     Endr                    ; End repeat
  109.     Movem.l    (a7)+,a0-a6/d0-d7        ; Restor Regs
  110.     Rts
  111. RegFiller
  112.     Dcb.l    16,0
  113.     Rts
  114.  
  115. *****************************************************************************
  116.  
  117. BlitAll
  118.     Blitwait
  119.     Move.w    #-2,Bltamod(a5)
  120.     Move.w    #-2,Bltbmod(a5)
  121.     Move.w    #36,Bltcmod(a5)
  122.     Move.w    #36,Bltdmod(a5)
  123.     Move.l    #$ffff0000,Bltafwm(a5)
  124.     Move.l    ScreenPtr,a0
  125.     Lea    Shifts,A1
  126.     Lea    Xsin,A2
  127.     Lea    Ysin,A3
  128.     Move.l    #BobMask,a4
  129.     Lea    Form1,A6
  130.     Move.w    (a6)+,D7
  131.     Move.l    #Bob,d2
  132.     Move.w    #48*64+2,d4
  133.     Move.l    #$01fe01fe,D5
  134.     Move.w    (a6)+,D3                ; Xinc
  135.     Swap    d3
  136.     Move.w    (a6)+,D3                ; Yinc
  137.     Move.l    a0,bltcpth(A5)
  138.     Move.l    a0,bltdpth(A5)
  139.     Move.w    A0,D6
  140. DoBobs
  141.     Move.w    d6,a0
  142.     Add.l    d3,(a6)
  143.     And.l    D5,(a6)
  144.     Move.w    (a6)+,D0                ; Get X
  145.     Move.w    (a6)+,D1                ; Get Y
  146.     Move.w    (a2,d0),d0
  147.     Add.w    (a3,d1),A0
  148.     Add.w    (a1,d0),A0
  149.     Move.l    2(a1,d0),Bltcon0(a5)
  150.     Move.l    a4,bltapth(A5)
  151.     Move.l    d2,bltbpth(A5)
  152.     Move.w    a0,bltcptl(A5)
  153.     Move.w    a0,bltdptl(A5)
  154.     move.w    d4,bltsize(A5)
  155.     Dbf    D7,DoBobs
  156.     Rts
  157.     
  158. *****************************************************************************
  159.  
  160. StShift    Macro
  161.     Dc.w    \1,$0fca,$0000
  162.     Dc.w    \1,$1fca,$1000
  163.     Dc.w    \1,$2fca,$2000
  164.     Dc.w    \1,$3fca,$3000
  165.     Dc.w    \1,$4fca,$4000
  166.     Dc.w    \1,$5fca,$5000
  167.     Dc.w    \1,$6fca,$6000
  168.     Dc.w    \1,$7fca,$7000
  169.     Dc.w    \1,$8fca,$8000
  170.     Dc.w    \1,$9fca,$9000
  171.     Dc.w    \1,$afca,$a000
  172.     Dc.w    \1,$bfca,$b000
  173.     Dc.w    \1,$cfca,$c000
  174.     Dc.w    \1,$dfca,$d000
  175.     Dc.w    \1,$efca,$e000
  176.     Dc.w    \1,$ffca,$f000
  177.     Endm
  178. Shifts
  179.     StShift    0
  180.     StShift    2
  181.     StShift    4
  182.     StShift    6
  183.     StShift    8
  184.     StShift    10
  185.     StShift    12
  186.     StShift    14
  187.     StShift    16
  188.     StShift    18
  189.     StShift    20
  190.     StShift    22
  191.     StShift    24
  192.     StShift    26
  193.     StShift    28
  194.     StShift    30
  195.     StShift    32
  196.     StShift    34
  197.     StShift    36
  198.     StShift    38
  199.     StShift    40
  200.     
  201. *****************************************************************************
  202.  
  203. ; All copper list after here
  204.  
  205. Copper
  206.  
  207.     Spr_Off                    ; Switch sprites off
  208.     Cmove    $2c81,Diwstrt
  209.     Cmove    $2cc1,Diwstop
  210.     Cmove    $0038,Ddfstrt
  211.     Cmove    $00d0,Ddfstop
  212.     Cmove    $0050,Bpl1mod            
  213.     Cmove    $0050,Bpl2mod
  214.     Cmove    $0000,Color00
  215.     Cmove    $0ffa,Color01
  216.     Cmove    $0ab0,Color02
  217.     Cmove    $0a80,Color03
  218.     Cmove    $0960,Color04
  219.     Cmove    $0730,Color05
  220.     CMove    $0610,Color06
  221.     Cmove    $0500,Color08
  222.     Cmove    $0007,Bpl1pth
  223. B1l
  224.     Cmove    $0000,Bpl1ptl
  225.     Cmove    $0007,Bpl2pth
  226. B2l
  227.     Cmove    $0028,Bpl2ptl
  228.     Cmove    $0007,Bpl3pth
  229. B3l
  230.     Cmove    $0050,Bpl3ptl
  231.     Cmove    $3200,Bplcon0
  232.     Endcop
  233.  
  234. *****************************************************************************
  235.  
  236. ; Inc Files For The Bobs
  237.  
  238. Bob
  239.     Incbin    Gfx/Bobs.bm
  240. BobMask
  241.     Incbin    Gfx/BobsMask.Bm
  242.     
  243. *****************************************************************************
  244.  
  245. XSin
  246.     Rept    2
  247.     dc.w    300*6,300*6,300*6,300*6,299*6,299*6,298*6,298*6
  248.     dc.w    297*6,296*6,296*6,295*6,294*6,292*6,291*6,290*6
  249.     dc.w    289*6,287*6,286*6,284*6,282*6,281*6,279*6,277*6
  250.     dc.w    275*6,273*6,270*6,268*6,266*6,264*6,261*6,259*6
  251.     dc.w    256*6,253*6,251*6,248*6,245*6,242*6,239*6,236*6
  252.     dc.w    233*6,230*6,227*6,224*6,221*6,217*6,214*6,211*6
  253.     dc.w    207*6,204*6,201*6,197*6,194*6,190*6,186*6,183*6
  254.     dc.w    179*6,176*6,172*6,168*6,165*6,161*6,157*6,154*6
  255.     dc.w    150*6,146*6,143*6,139*6,135*6,132*6,128*6,124*6
  256.     dc.w    121*6,117*6,114*6,110*6,106*6,103*6,99*6,96*6
  257.     dc.w    93*6,89*6,86*6,83*6,79*6,76*6,73*6,70*6
  258.     dc.w    67*6,64*6,61*6,58*6,55*6,52*6,49*6,47*6
  259.     dc.w    44*6,41*6,39*6,36*6,34*6,32*6,30*6,27*6
  260.     dc.w    25*6,23*6,21*6,19*6,18*6,16*6,14*6,13*6
  261.     dc.w    11*6,10*6,9*6,8*6,6*6,5*6,4*6,4*6
  262.     dc.w    3*6,2*6,2*6,1*6,1*6,0*6,0*6,0*6
  263.     dc.w    0*6,0*6,0*6,0*6,1*6,1*6,2*6,2*6
  264.     dc.w    3*6,4*6,4*6,5*6,6*6,8*6,9*6,10*6
  265.     dc.w    11*6,13*6,14*6,16*6,18*6,19*6,21*6,23*6
  266.     dc.w    25*6,27*6,30*6,32*6,34*6,36*6,39*6,41*6
  267.     dc.w    44*6,47*6,49*6,52*6,55*6,58*6,61*6,64*6
  268.     dc.w    67*6,70*6,73*6,76*6,79*6,83*6,86*6,89*6
  269.     dc.w    93*6,96*6,99*6,103*6,106*6,110*6,114*6,117*6
  270.     dc.w    121*6,124*6,128*6,132*6,135*6,139*6,143*6,146*6
  271.     dc.w    150*6,154*6,157*6,161*6,165*6,168*6,172*6,176*6
  272.     dc.w    179*6,183*6,186*6,190*6,194*6,197*6,201*6,204*6
  273.     dc.w    207*6,211*6,214*6,217*6,221*6,224*6,227*6,230*6
  274.     dc.w    233*6,236*6,239*6,242*6,245*6,248*6,251*6,253*6
  275.     dc.w    256*6,259*6,261*6,264*6,266*6,268*6,270*6,273*6
  276.     dc.w    275*6,277*6,279*6,281*6,282*6,284*6,286*6,287*6
  277.     dc.w    289*6,290*6,291*6,292*6,294*6,295*6,296*6,296*6
  278.     dc.w    297*6,298*6,298*6,299*6,299*6,300*6,300*6,300*6
  279.     Endr
  280.  
  281. *****************************************************************************
  282.  
  283. YSin
  284.     Rept    2
  285.     dc.w    184*120,184*120,184*120,184*120,184*120,183*120,183*120,183*120
  286.     dc.w    182*120,182*120,181*120,181*120,180*120,179*120,179*120,178*120
  287.     dc.w    177*120,176*120,175*120,174*120,173*120,172*120,171*120,170*120
  288.     dc.w    168*120,167*120,166*120,165*120,163*120,162*120,160*120,159*120
  289.     dc.w    157*120,155*120,154*120,152*120,150*120,149*120,147*120,145*120
  290.     dc.w    143*120,141*120,139*120,137*120,135*120,133*120,131*120,129*120
  291.     dc.w    127*120,125*120,123*120,121*120,119*120,117*120,114*120,112*120
  292.     dc.w    110*120,108*120,105*120,103*120,101*120,99*120,97*120,94*120
  293.     dc.w    92*120,90*120,87*120,85*120,83*120,81*120,79*120,76*120
  294.     dc.w    74*120,72*120,70*120,67*120,65*120,63*120,61*120,59*120
  295.     dc.w    57*120,55*120,53*120,51*120,49*120,47*120,45*120,43*120
  296.     dc.w    41*120,39*120,37*120,35*120,34*120,32*120,30*120,29*120
  297.     dc.w    27*120,25*120,24*120,22*120,21*120,19*120,18*120,17*120
  298.     dc.w    16*120,14*120,13*120,12*120,11*120,10*120,9*120,8*120
  299.     dc.w    7*120,6*120,5*120,5*120,4*120,3*120,3*120,2*120
  300.     dc.w    2*120,1*120,1*120,1*120,0*120,0*120,0*120,0*120
  301.     dc.w    0*120,0*120,0*120,0*120,0*120,1*120,1*120,1*120
  302.     dc.w    2*120,2*120,3*120,3*120,4*120,5*120,5*120,6*120
  303.     dc.w    7*120,8*120,9*120,10*120,11*120,12*120,13*120,14*120
  304.     dc.w    16*120,17*120,18*120,19*120,21*120,22*120,24*120,25*120
  305.     dc.w    27*120,29*120,30*120,32*120,34*120,35*120,37*120,39*120
  306.     dc.w    41*120,43*120,45*120,47*120,49*120,51*120,53*120,55*120
  307.     dc.w    57*120,59*120,61*120,63*120,65*120,67*120,70*120,72*120
  308.     dc.w    74*120,76*120,79*120,81*120,83*120,85*120,87*120,90*120
  309.     dc.w    92*120,94*120,97*120,99*120,101*120,103*120,105*120,108*120
  310.     dc.w    110*120,112*120,114*120,117*120,119*120,121*120,123*120,125*120
  311.     dc.w    127*120,129*120,131*120,133*120,135*120,137*120,139*120,141*120
  312.     dc.w    143*120,145*120,147*120,149*120,150*120,152*120,154*120,155*120
  313.     dc.w    157*120,159*120,160*120,162*120,163*120,165*120,166*120,167*120
  314.     dc.w    168*120,170*120,171*120,172*120,173*120,174*120,175*120,176*120
  315.     dc.w    177*120,178*120,179*120,179*120,180*120,181*120,181*120,182*120
  316.     dc.w    182*120,183*120,183*120,183*120,184*120,184*120,184*120,184*120
  317.     Endr
  318.     
  319. *****************************************************************************
  320.  
  321. XY    Macro
  322.     Dc.w    (\1*2)&$1fe,(\2*2)&$1fe
  323.     Endm
  324. Form1
  325.     Dc.w    85-1
  326.     Dc.w    2,2
  327. A    Set    0
  328. B    Set    256
  329.  
  330.     Rept    85
  331.     XY    a,b
  332. A    Set    a+2
  333. b    Set    b-2    
  334.     Endr
  335.  
  336. *****************************************************************************
  337.  
  338. ScreenPtr
  339.     Dc.l    $70000
  340.     
  341. *****************************************************************************
  342.  
  343.